﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Упр)
	///</summary>
	[DataContract]
	public enum ВидыСобственныхОрганизаций
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"23ed92eb-ddd0-4f8b-927d-f0b4e5ae6a57\", \"Представление\":\"ДочерняяОрганизация\"}")]
		ДочерняяОрганизация = 0,//Дочерняя организация
		[EnumMember(Value = "{\"Ссылка\":\"b4773e07-f5b5-4811-998f-8382bc31de3b\", \"Представление\":\"ЗависимаяОрганизация\"}")]
		ЗависимаяОрганизация = 1,//Зависимая организация
		[EnumMember(Value = "{\"Ссылка\":\"43be9e5c-1e2a-4748-994b-3bb1b533ffc6\", \"Представление\":\"СовместноКонтролируемаяОрганизация\"}")]
		СовместноКонтролируемаяОрганизация = 2,//Совместно контролируемая организация
		[EnumMember(Value = "{\"Ссылка\":\"aca797b0-3051-4169-a766-3bd61591902a\", \"Представление\":\"МатеринскаяОрганизация\"}")]
		МатеринскаяОрганизация = 3,//Материнская организация
		[EnumMember(Value = "{\"Ссылка\":\"78d86c69-7351-45fb-bf18-4b1fed5aa4a5\", \"Представление\":\"КонтролирующаяОрганизация\"}")]
		КонтролирующаяОрганизация = 4,//Контролирующая организация
	}
	public static partial class ВидыСобственныхОрганизаций_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ДочерняяОрганизация = new Guid("b4f07d92-aee5-576a-4f8b-ddd023ed92eb");//Дочерняя организация
		public static readonly Guid ЗависимаяОрганизация = new Guid("82838f99-31bc-3bde-4811-f5b5b4773e07");//Зависимая организация
		public static readonly Guid СовместноКонтролируемаяОрганизация = new Guid("b13b4b99-33b5-c6ff-4748-1e2a43be9e5c");//Совместно контролируемая организация
		public static readonly Guid МатеринскаяОрганизация = new Guid("d63b66a7-9115-2a90-4169-3051aca797b0");//Материнская организация
		public static readonly Guid КонтролирующаяОрганизация = new Guid("1f4b18bf-5aed-a5a4-45fb-735178d86c69");//Контролирующая организация
		public static ВидыСобственныхОрганизаций Получить(this ВидыСобственныхОрганизаций Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыСобственныхОрганизаций Получить(this ВидыСобственныхОрганизаций Значение, Guid Ссылка)
		{
			if(Ссылка == ДочерняяОрганизация)
			{
				return ВидыСобственныхОрганизаций.ДочерняяОрганизация;
			}
			else if(Ссылка == ЗависимаяОрганизация)
			{
				return ВидыСобственныхОрганизаций.ЗависимаяОрганизация;
			}
			else if(Ссылка == СовместноКонтролируемаяОрганизация)
			{
				return ВидыСобственныхОрганизаций.СовместноКонтролируемаяОрганизация;
			}
			else if(Ссылка == МатеринскаяОрганизация)
			{
				return ВидыСобственныхОрганизаций.МатеринскаяОрганизация;
			}
			else if(Ссылка == КонтролирующаяОрганизация)
			{
				return ВидыСобственныхОрганизаций.КонтролирующаяОрганизация;
			}
			return ВидыСобственныхОрганизаций.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыСобственныхОрганизаций Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыСобственныхОрганизаций Значение)
		{
			switch (Значение)
			{
				case ВидыСобственныхОрганизаций.ДочерняяОрганизация: return ДочерняяОрганизация;
				case ВидыСобственныхОрганизаций.ЗависимаяОрганизация: return ЗависимаяОрганизация;
				case ВидыСобственныхОрганизаций.СовместноКонтролируемаяОрганизация: return СовместноКонтролируемаяОрганизация;
				case ВидыСобственныхОрганизаций.МатеринскаяОрганизация: return МатеринскаяОрганизация;
				case ВидыСобственныхОрганизаций.КонтролирующаяОрганизация: return КонтролирующаяОрганизация;
			}
			return Guid.Empty;
		}
	}
}